package br.com.sgh.beans;

import br.com.sgh.dao.GeneroDAO;
import br.com.sgh.entidade.Genero;
import br.com.sgh.util.FacesContextUtil;
import java.io.Serializable;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

@ManagedBean
@ViewScoped
public class GeneroBean implements Serializable {

    private Genero genero;
    private List<Genero> generos;
    private String pesquisaGenero;

    private GeneroDAO<Genero> dao() {
        GeneroDAO<Genero> dao = new GeneroDAO<Genero>(Genero.class, FacesContextUtil.getRequestSession());
        return dao;
    }

    public String salvarGenero() {
        if (genero.getCodGenero() == null || genero.getCodGenero() < 1) {
            dao().salvar(genero);
            cancelar();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Gravado com sucesso!", ""));
        } else {
            dao().atualizar(genero);
            cancelar();
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(FacesMessage.SEVERITY_INFO, "Alterado com sucesso!", ""));
        }
        return "/admin/genero.faces";
    }

    public String pesquisarGenero() {
        generos = dao().pesquisaGenero(pesquisaGenero);
        return null;
    }

    public String editar(Integer codigo) {
        genero = dao().getEntity(codigo);
        return null;
    }

    public String cancelar() {
        genero = new Genero();
        return "/admin/genero.faces";
    }

    public Genero getGenero() {
        if (genero == null) {
            genero = new Genero();
        }
        return genero;
    }

    public void setGenero(Genero genero) {
        this.genero = genero;
    }

    public List<Genero> getGeneros() {
        if (generos == null) {
            generos = dao().generos();
        }
        return generos;
    }

    public void setGenero(List<Genero> generos) {
        this.generos = generos;
    }

    public String getPesquisaGenero() {
        return pesquisaGenero;
    }

    public void setPesquisaGenero(String pesquisaGenero) {
        this.pesquisaGenero = pesquisaGenero;
    }
}
